﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Data.SqlClient;

namespace VerdePimienta2._0
{
    public partial class ModificarDatosEmpresa : Form
    {
        public ModificarDatosEmpresa()
        {
            InitializeComponent();
        }

        private void fillToolStripButton_Click(object sender, EventArgs e)
        {
            try
            {
                this.buscarClientePorNombreTelefonoTableAdapter.Fill(this.verdepimientadbDataSet.BuscarClientePorNombreTelefono, nombreToolStripTextBox.Text, telefonoToolStripTextBox.Text);
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(nombreEmpresaTextBox.Text) || string.IsNullOrEmpty(cifEmpresaTextBox.Text) || string.IsNullOrEmpty(contactoEmpresaTextBox.Text)
                || string.IsNullOrEmpty(emailTextBox.Text) || string.IsNullOrEmpty(telefonoTextBox.Text) || string.IsNullOrEmpty(razonSocialEmpresaTextBox.Text)
                || string.IsNullOrEmpty(poblacionTextBox.Text) || string.IsNullOrEmpty(direccionTextBox.Text))
            {
                MessageBox.Show("Debe rellenar todos los datos correspondientes a la empresa.", "Error Datos Empresa",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if ((ValidaTelefono(telefonoTextBox.Text) && ValidaMail(emailTextBox.Text)))
                {
                    System.Nullable<int> Resultado = 0;

                    verdepimientadbDataSetTableAdapters.QueriesTableAdapter Adapter = new VerdePimienta2._0.verdepimientadbDataSetTableAdapters.QueriesTableAdapter();
                    Adapter.ComprobarClienteExistente(telefonoTextBox.Text, telefonoTextBox.Text, ref Resultado);
                    if (Resultado.Equals(0))
                    {
                        DialogResult dr = MessageBox.Show("Está seguro de modificar la Empresa?",
                                              "Nueva Empresa.",
                                              MessageBoxButtons.OKCancel,
                                              MessageBoxIcon.Question);
                        if (dr == DialogResult.OK)
                        {
                            string strSQL = "UPDATE Clientes SET" +
                             " Nombre = '" + nombreEmpresaTextBox.Text +
                             "' ,CifEmpresa = '" + cifEmpresaTextBox.Text +
                             "' ,Telefono = '" + telefonoTextBox.Text +
                             "' ,Movil = '" + movilTextBox.Text +
                             "' ,Direccion = '" + direccionTextBox.Text +
                             "' ,Poblacion = '" + poblacionTextBox.Text +
                             "' ,Provincia = '" + provinciaTextBox.Text +
                             "' ,CP = '" + cPTextBox.Text +
                             "' ,Email = '" + emailTextBox.Text +
                             "' ,Observaciones = '" + observacionesTextBox.Text +
                             "' WHERE Id = " + idLabel1.Text;

                            try
                            {
                                SqlConnection conexionClientes = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=""C:\Documents and Settings\Chema\Mis documentos\Visual Studio 2008\Projects\VerdePimienta2.0\VerdePimienta2.0\verdepimientadb.mdf"";Integrated Security=True;User Instance=True");
                                conexionClientes.Open();

                                SqlCommand cmSQL = new SqlCommand(strSQL, conexionClientes);

                                cmSQL.ExecuteNonQuery();

                                conexionClientes.Close();

                                MessageBox.Show("Cliente guardado con éxito");

                            }
                            catch (Exception exc)
                            {
                                MessageBox.Show(exc.Message, "Error acceso a base de datos.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            resetDatosCliente();
                            this.Close();
                        }
                        else
                        {

                        }
                     
                    }
                    else
                    {
                        MessageBox.Show("El cliente ya existe en la base de datos.", "Error Alta cliente.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    if (ValidaMail(emailTextBox.Text))
                    {
                        MessageBox.Show("El campo email no tiene  el formato correcto", "Error Email", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        MessageBox.Show("El campo teléfono no tiene  el formato correcto", "Error Teléfono", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void btnCancelarModificacionEmpresa_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public void resetDatosCliente()
        {
            //txtNombEmpresa.Clear();
            //txtCifEmpresa.Clear();
            //txtRazSocialEmpresa.Clear();
            //txtContactoEmpresa.Clear();
            //txtdireccionEmpresa.Clear();
            //txtpoblacionEmpresa.Clear();
            //txtTlfEmpresa.Clear();
            //txtEmailEmpresa.Clear();
            //txtObservacionesEmpresa.Clear();
        }


        public bool ValidaTelefono(string telefono)
        {
            if ((EsNum(telefono)) && (telefono.Length == 9))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public bool ValidaMail(string email)
        {
            if (Regex.IsMatch(email, @"^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$"))
            {
                return true;
            }
            else
            {
                return false;
            }

        }

        public bool EsNum(string val)
        {
            Regex _isNumber = new Regex(@"[0123456789]");
            Match m = _isNumber.Match(val);
            return m.Success;
        }

    }
}
